1. Field of the Invention
This invention relates to wireless communication. More particularly, this invention provides more efficient way to handle several abnormal cases for Acknowledged Mode transmission and Unacknowledged Mode transmission.
2. Description of the Prior Art
Under the acknowledged mode (AM) in a wireless communication network, data transferred between two RLC peer entities (a UE or a UTRAN can be either a Sender or a Receiver) is in the Packet Data Unit (PDU) format. FIG. 1 illustrates the simplified procedure for Acknowledged mode data (AMD) transfer.
The Sender packages a Radio Link Control (RLC) Service Data Units (SDUs) received from upper layers into one or multi fixed-size AMD PDUs. If the AMD PDU is transmitted for the first time, the Sender shall set the “Sequence Number” field, its “Length Indicator” field and its “Polling Bit” accordingly. Otherwise, if the AMD PDU is retransmitted, the Sender uses the same “Sequence Number” as the original AMD PDU has. The Sender will update the “Length Indicator” field of a retransmitted AMD PDU due to that a piggybacked STATUS PDU is involved. Of course the Sender also sets the “Polling bit” accordingly. Afterward, if one or more AMD PDUs have been scheduled for transmission or retransmission, the Sender shall submit any ready AMD PDUs to lower layer to transmit.
Upon receiving an AMD PDU, the Receiver shall update its state variables for each received AMD PDU. The Receiver reassembles the received AMD PDUs into RLC SDUs. If “in-Sequence Delivery” is configured, the Receiver delivers the RLC SDUs in-sequence (i.e. in the same order as the RLC SDUs were originally transmitted by the peer entity—the Sender) to upper layers through the AM Service Access Point (AM-SAP). Otherwise, deliver the RLC SDUs in arbitrary order to upper layers through the AM-SAP.
Furthermore, the Sender and the Receiver uses a RLC reset procedure to resynchronize the peer entities when an abnormal condition happened. FIG. 2 illustrates the elementary procedure for an RLC reset. During the reset procedure the hyper frame numbers (HFN) in the Sender and the Receiver are synchronized. Usually, the RESET PDUs and the RESET ACK PDUs have higher priority than AMD PDUs. When a reset procedure has been initiated it can only be ended upon reception of a RESET ACK PDU with the same Reset Sequence Number (RSN) value as in the corresponding RESET PDU, or upon request of re-establishment or release from upper layer. A reset procedure is not interrupted by the reception of a RESET PDU from the peer entity.
The Sender and the Receiver use many techniques, such as the “Sequence Number” of each PDU, the “Length Indicator” with allowable values or reserved values, the transmitting and receiving window size and others, to monitor any error occurring during transmission and to maintain synchronization between them.
FIG. 3 illustrates how an AMD PDU with abnormal condition is processed. If the Receiver receives an AMD PDU outside the range of its reception window (Steps 5 and 10), the Receiver will discard the AMD PDU (Step 15) and go to Step 20. If the sequence number is within the range, then the Receiver checks if the value of “Length Indicator” of the received PDU is invalid or reserved (Step 40). If the “Length Indicator” has an invalid or a reserved value, the Receiver discards this AMD PDU and treats the discarded AMD PDU as a missing one (Step 50). An invalid value of the “Length Indicator” can be a value greater than the size of data field in the PDU. Additionally, an invalid value can be caused by using any value that violates the rules of the RLC protocol, such as using both values of 1111110 and 1111111 for “Length Indicator” in the same PDU, using the value 1111110 not followed by an extension bit of value 0, or using an incorrect order of the “Length Indicators” etc. Otherwise, if the “Length Indicator” is valid and is not reserved, the Receiver shall update its state variables (Step 45). Next, at Step 20, the Receiver checks if the “polling Bit” of the received AMD PDU is set to be “1”. If it is, the Receiver shall initiate the STATUS PDU transfer procedure (Step 30) and then reassemble the received AMD PDUs into RLC SDUs (Step 55). Moreover, if the “Polling Bit” is not “1”, the Receiver further checks if the “Missing PDU Indicator” is configured and the Receiver detects any missing AMD PDU (Step 25). If the Indicator is configured and a PDU is missing, the Receiver initiates the Status PDU transfer procedure in Step 30 and then go to Step 55. However, if “Missing PDU Indicator” is not configured or if the Receiver detects no missing PDU, the receiver will reassemble the received AMD PDU(s) into RLC SDU(s) and deliver the AMD SDU(s) to upper layers through AM_SAP (Steps 55, 60).
Also at the Receiver side, once the triggering of a STATUS report has occurred, as shown in FIG. 4, the Receiver first checks if there are active status prohibit functions or active “EPC mechanism” (Steps 70, 75). If there is, the Receiver delays the submitting of the STATUS PDU until the “STATUS prohibit” or “EPC mechanism” becomes inactive (Step 100). Otherwise, the Receiver shall include negative acknowledgements for all AMD PDUs detected as missing and positive acknowledgements for all AMD PDUs received up to at least VR(R) and set up optional Super Field variables into a STATUS PDU, which will be sent back to the Sender (Steps 80, 85, 90, and 95). At the Sender side, when the Sender receives a STATUS PDU from the Receiver (Step 105), the Sender checks if the STATUS PDU including “erroneous Sequence Number”. If it does, the Sender shall discard the STATUS PDU and initiate the RLC reset procedure (Steps 135, 140). If the STATUS PDU does not include “Erroneous Sequence Number”, the Sender updates its state variables, VT(A) and VT(MS) (Step 115). Then the Sender checks if the STATUS PDU include negatively acknowledged AMD PDUs (Step 120). If it does not, goes to Step 130. Otherwise, if it does, the Sender shall initiate the acknowledged data transfer procedure and retransmit these negatively acknowledged AMD PDUs. Last, at Step 130, the Sender processes optional Super Field variables as needed.
Under the unacknowledged mode (UM) in a wireless communication network, data transferred between two RLC peer entities also is in a Packet Data Unit (PDU) format. FIG. 5 illustrates the elementary procedure for unacknowledged mode data (UMD) transfer.
The Sender packages a Radio Link Control (RLC) Service Data Units (SDUs) received from upper layers into one or multi fixed-size UMD PDUs. The UMD PDU is transmitted once only. The Sender shall set the “Sequence Number” field and its “Length Indicator” field accordingly. For example, the UM data state variable, VT(US), contains the “Sequence Number” of the next UMD PDU to be transmitted. It shall be incremented by 1 each time a UMD PDU is transmitted. If one or more UMD PDUs have been scheduled for transmission, the Sender shall submit any ready UMD PDUs to lower layer for transmission. When the Sequence Number wraps around from the maximum value of 7-bit representation, i.e. 127, back to 0, the associated hyper frame number (HFN) is incremented by one. The HFNs are not sent explicitly in the UMD PDUs. Instead, they are maintained independently in the peer Sender and Receiver. A ciphering mechanism will use HFN as a parameter to cipher at the Sender and decipher at the Receiver. If the HFNs of the peer entity are not kept in synchronization, the ciphering mechanism will fail.
Upon receiving a UMD PDU from a Sender (Step 150), as shown in FIG. 6, the Receiver checks if the value of the “Length Indicator” of the received UM PDU is invalid or reserved (Step 155), e.g. the Receiver checks if the “Length Indicator” has a value that is either larger than the size of data field in the PDU (invalid) or a value specified to be reserved for UMD PDU for other purposes, such as functions for later releases. If it is invalid or is reserved, the Receiver discards the UMD PDU and treats the UMD PDU as missing (Step 160) then go to Step 190. Otherwise, the Receiver updates the Receiver Send Sequence State Variable, VR(US), to contain the “Sequence Number” following that of the last UMD PDU received (Step 170). For example, when a UMD PDU with “Sequence Number” x is received, the VR(US) shall be set to x+1. The Receiver further checks if any UMD PDU is missing, i.e. the Receiver checks if the updating step of VR(US) is greater than one (Step 175). If the updating step of VR(US) is not greater than one, the Receiver checks if the received UMD PDU is the first segment of an SDU by looking for a predefined “Length Indicator” value “1111100” or “1111 11111111 100”, which is used to indicate the first data octet in this UMD PDU is the first octet of an RLC SDU (Steps 180, 185). If the received UMD PDU is not the first segment of an SDU, the Receiver shall assemble the received UMD PDU into RLC SDU(s) and submit the RLC SDU(s) to upper layer through UM-SAP (Steps 195 and 200). However if there is any missing UMD PDU detected in Steps 175 and 160, the Receiver shall discard any SDU(s) having segments in the missing UMD PDU(s) (Step 190).
Overall, the prior art has an inefficient way to process an AMD PDU with its “Length Indicator” having an invalid or a reserved value in an Acknowledged Mode transmission. There are cases caused by the physical layer CRC residue error so that the erroneous bit string of the AMD PDU is not detected by the CRC scheme. In this situation, sequence number of the AMD PDU might also contain errors. The Receiver treats an AMD PDU with its “Length Indicator” having an invalid or a reserved value as a missing PDU. See Step 50 in FIG. 3. When a status report is triggered, the report would include negative acknowledgement of this AMD PDU of possible contaminated sequence number. See Step 80 in FIG. 4. Moreover, if the contaminated sequence number is outside the transmission window, the Sender recognizes this status report as containing an “erroneous Sequence Number” and will initiate a RLC reset procedure accordingly. (See Step 140 in FIG. 5). Thus, when the AMD PDU with invalid or reserved length indicator is treated as a missing PDU, the Sender might initiate an unnecessary RLC reset procedure.
The similar inefficient process also occurs in an Unacknowledged Mode Transmission. Where the Receiver may receive a UMD PDU with its “Length Indicator” having an invalid or a reserved value. Just as the AM transmission, this may because of a physical layer CRC residue error, i.e., there are errors in the bit string of the UMD PDU and these errors are not detected by the CRC scheme. In this situation, sequence number of the UMD PDU might also contain errors. In the prior art design, the Receiver treats a UMD PDU with invalid or reserved “Length Indicator” as a missing PDU. If the sequence number is also contaminated, the Receiver will discard wrong SDUs. See Steps 160 and 190 in FIG. 6. In addition, if the contaminated sequence number changes the order from increment to decrement compared to the previously received UMD PDU, the Receiver will discard the UMD PDU but will mistakenly increment the HFN value so that the HFNs will not be synchronous with the Sender any more. Consequently, the ciphering mechanism will fail and cause all the following transmitted UMD PDUs lost. Thus, when the UMD PDU with a “Length Indicator” having an invalid or a reserved value is treated as a missing PDU, the Receiver might discard wrong SDUs and also might make the HFNs unsynchronized with the Sender.